export {}

// 创建 number 类型的数组
function createNumberArray (length: number, value: number): number[] {
  // 由于 Array 默认创建的是 any 类型的数组，因此需要指定数组中的数据类型
  /* 注意注意: .fill() 是 es6 的语法，因此与要在 tsconfig 中同步 target */
  const arr = Array<number>(length).fill(value)
  return arr
}

// 创建 string 类型的数组
function createStringArray (length: number, value: string): string[] {
  const arr = Array<string>(length).fill(value)
  return arr
}

// 上面两种写法不灵活，因此需要将类型变为参数 <T> 泛型参数
function createArray<T> (length: number, value: T): T[] {
  const arr = Array<T>(length).fill(value)
  return arr
}

// const arr = createNumberArray(3, 100)
const arr = createArray<string>(3, '100')
console.log(arr, 'arr')